/*
 * Copyright (c) 2007-2020 西安交通信息投资营运有限公司 版权所有
 * 作者:吕艳阳
 */

import {page, post} from '@/utils/request';
import {ApiResult} from '@/utils/data';
import config from '@/config';
import {ParamModel} from './data';
import {exportExcel} from "@/utils/utils";

/** 获取系统参数接口基地址 */
const getUrl = (url: string) => config.apiBaseUrl + '/sys/param' + url;

/** 系统参数接口服务 */
const service = {
  /** 新建系统参数 */
  async insert(data: ParamModel): Promise<ApiResult> {
    return post(getUrl('/insert'), data);
  },

  /** 修改系统参数 */
  async update(data: ParamModel): Promise<ApiResult> {
    return post(getUrl('/update'), data);
  },

  /** 保存系统参数 */
  async save(created: boolean, oldRecord: any, newRecord: any): Promise<ApiResult> {
    return created ? service.insert(newRecord) : service.update(newRecord)
  },

  /** 批量保存系统参数 */
  async batchSave(data: ParamModel[]) {
    return post(getUrl('/batchSave'), data);
  },

  /** 根据主键字符串删除系统参数 */
  async delete(ids: string): Promise<ApiResult> {
    return post(getUrl('/delete'), {ids});
  },

  /** 根据主键查询单个系统参数 */
  async selectById(id: string): Promise<ApiResult<ParamModel>> {
    return post(getUrl('/selectById'), {id});
  },

  /** 根据编码查询单个系统参数 */
  async selectByCode(code: string): Promise<ApiResult<ParamModel>> {
    return post(getUrl('/selectByCode'), {code});
  },

  /** 查询系统参数列表 */
  async selectList(data: any) {
    return post(getUrl('/selectList'), data);
  },

  /** 查询系统参数分页列表 */
  async selectPageList(data: any) {
    return page(getUrl('/selectPageList'), data);
  },

  /** 导出系统参数列表 */
  export(data: any) {
    exportExcel(getUrl('/export'), data);
  },
}

export default service;
